home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / RxMUI / Examples / gfx.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  2001-05-24  |  7.4 KB  |  239 lines

  1. /**/
  2.  
  3. signal on halt
  4. signal on break_c
  5.  
  6. call init
  7. call CreateApp
  8. call HandleApp
  9. /* never reached */
  10. /***********************************************************************/
  11. init: procedure expose global.
  12.     l="rmh.library";if ~show("L",l) then;if ~addlib(l,0,-30) then exit
  13.     if AddLibrary("rxmui.library")~=0 then exit
  14.     if ~ReadArgs("FILE") then do
  15.         call PrintFault()
  16.         exit
  17.     end
  18.     if parm.0.flag then global.file=parm.0.value
  19.     else global.file=""
  20.     global.GfxExt=0
  21.     global.GfxLoad=0
  22.     call RxMUIOpt("debugmode showerr")
  23.     return
  24. /***********************************************************************/
  25. HandleApp: procedure expose global.
  26.  
  27.     ctrl_c=2**12
  28.     do forever
  29.         call NewHandle("app","h",ctrl_c)
  30.         if and(h.signals,ctrl_c)>0 then exit
  31.         select
  32.             when h.event="QUIT" then exit
  33.             otherwise interpret h.event
  34.         end
  35.     end
  36.     /* never reached */
  37. /***********************************************************************/
  38. CreateApp: procedure expose global.
  39.  
  40.     app.Title="Guigfx example"
  41.     app.Version="$VER: Guigfx example 1.1 (22.1.2001)"
  42.     app.Copyright="©2001, alfie"
  43.     app.Author="alfie"
  44.     app.Description="Guigfx example"
  45.     app.Base="RXMUIEXAMPLE"
  46.  
  47.     app.SubWindow.0="win"
  48.      win.ID="MAIN"
  49.      win.Title="Guigfx example"
  50.      win.Contents="MGROUP"
  51.  
  52.       mgroup.0="gfxg"
  53.        gfxg.class="group"
  54.        gfxg.frame="string"
  55.        gfxg.spacing=0
  56.         gfxg.0="gfx1"
  57.          gfx1.class="rectangle"
  58.  
  59.       mgroup.1=text(info)
  60.  
  61.       mgroup.2="ctrlg"
  62.        ctrlg.class="group"
  63.        ctrlg.frame="group"
  64.        ctrlg.FrameTitle="Control"
  65.        ctrlg.Columns=2
  66.  
  67.         ctrlg.0=label("_File")
  68.         ctrlg.1="popf"
  69.          popf.class="popasl"
  70.          popf.string=string("file","f",global.file)
  71.  
  72.         ctrlg.2=label("ScaleMode")
  73.         ctrlg.3="scalemg"
  74.          scalemg.class="group"
  75.          scalemg.horiz=1
  76.           scalemg.0=Checkmark("sup",0,"u")
  77.           scalemg.1=Label("_Up")
  78.           scalemg.2=hspace(4)
  79.           scalemg.3=Checkmark("sdown",0,"d")
  80.           scalemg.4=Label("_Down")
  81.           scalemg.5=hspace(4)
  82.           scalemg.6=Checkmark("sfree",1,"e")
  83.           scalemg.7=Label("Fr_ee")
  84.           scalemg.8=hspace()
  85.         ctrlg.4=label("Trasparency")
  86.         ctrlg.5="trg"
  87.          trg.class="group"
  88.          trg.horiz=1
  89.           trg.0=Checkmark("tmask",0,"m")
  90.           trg.1=Label("_Mask")
  91.           trg.2=hspace(4)
  92.           trg.3=Checkmark("trgb",0,"r")
  93.           trg.4=Label("_RGB")
  94.           trg.5=hspace(4)
  95.           trg.6="tps"
  96.            tps.class="popstring"
  97.            tps.toggle=1
  98.            tps.string=text("ts","00000000")
  99.            tps.window="tcawin"
  100.             tcawin.class="window"
  101.             tcawin.ID="TWIN"
  102.             tcawin.Title="Adjust trasparency"
  103.             tcawin.Contents="tcawinmg"
  104.              tcawinmg.0="tca"
  105.              tca.class="coloradjust"
  106.              tca.red="00000000"x
  107.              tca.green="00000000"x
  108.              tca.blue="00000000"x
  109.              tcawinmg.1="tcc"
  110.               tcc.class="group"
  111.               tcc.horiz=1
  112.                tcc.0=button("tuse","_Use")
  113.                tcc.1=hspace()
  114.                tcc.2=button("tcancel","_Cancel")
  115.            tps.button="tcf"
  116.             tcf.class="colorfield"
  117.             tcf.InputMode="Relverify"
  118.             tcf.FixWidthTxt="nn"
  119.             tcf.FixHeightTxt="nn"
  120.             tcf.Frame="button"
  121.             tcf.red="00FFFFFF"x
  122.             tcf.green="00000000"x
  123.             tcf.blue="00000000"x
  124.           trg.7=hspace()
  125.  
  126.     res=NewObj("APPLICATION","APP")
  127.     if res~=0 then exit
  128.  
  129.     if global.file~="" then call NewFile(global.file)
  130.     else call Info("No file load.")
  131.  
  132.     call add("app","tcawin")
  133.     call set("win","open",1)
  134.     call getattr("win","open","o")
  135.     if o=0 then do
  136.         say "can't open window"
  137.         exit
  138.     end
  139.  
  140.     call Notify("win","CloseRequest",1,"app","ReturnID","quit")
  141.  
  142.     call Notify("tcawin","CloseRequest",1,"tps","close",0)
  143.     call Notify("tcancel","pressed",0,"tps","close",0)
  144.     call Notify("tuse","pressed",0,"tps","close",1)
  145.     call notify("tps","success",1,"app","return","call ChangeTrasparentColor()")
  146.  
  147.     call notify("tmask","selected","everytime","app","return","call ChangeTrasparencyMode()")
  148.     call notify("trgb","selected","everytime","app","return","call ChangeTrasparencyMode()")
  149.  
  150.     call notify("sup","selected","everytime","app","return","call ChangeScaleMode()")
  151.     call notify("sdown","selected","everytime","app","return","call ChangeScaleMode()")
  152.     call notify("sfree","selected","everytime","app","return","call ChangeScaleMode()")
  153.  
  154.     call Notify("file","newcontents","everytime","app","Return","call newfile(h.contents)","Contents")
  155.  
  156.     return
  157. /***********************************************************************/
  158. NewFile: procedure expose global.
  159. parse arg file
  160.     if FilePart(file)="" then return
  161.     call set("app","sleep",1)
  162.     call Info("Reading file '"file"'...")
  163.     call DoMethod("gfxg","InitChanges")
  164.     oname="gfx"||global.GfxExt
  165.     other=~global.GfxExt
  166.     gfx.ScaleMode="SCALEFREE"
  167.     gfx.filename=file
  168.     call RxMUIOpt("")
  169.     res=NewObj("guigfx",oname,"gfx")
  170.     call RxMUIOpt("debugmode showerr")
  171.     if res~=0 then do
  172.         call Info("Can't create Gfx for '"file"'.")
  173.         global.GfxLoad=0
  174.     end
  175.     else do
  176.         call Dispose("gfx"other)
  177.         call Add("gfxg",oname)
  178.         call Info("Gfx for '"file"' created.")
  179.         global.GfxExt=other
  180.         global.GfxName=oname
  181.         call SetNotifies()
  182.         global.GfxLoad=1
  183.     end
  184.     call DoMethod("gfxg","ExitChanges")
  185.     call set("app","sleep",0)
  186.     return
  187. /***********************************************************************/
  188. ChangeTrasparentColor: procedure expose global.
  189.     call getattr("tca","red","r")
  190.     call getattr("tca","green","g")
  191.     call getattr("tca","blue","b")
  192.     t=x2c("00" || left(c2x(r),2) || left(c2x(g),2) || left(c2x(b),2))
  193.     call set("tcf","red",r)
  194.     call set("tcf","green",g)
  195.     call set("tcf","blue",b)
  196.     call set("ts","contents",c2x(t))
  197.     if ~global.GfxLoad then return
  198.     call set("app","sleep",1)
  199.     call set(global.GfxName,"TransparentColor",t)
  200.     call set("app","sleep",0)
  201.     return
  202. /***********************************************************************/
  203. ChangeTrasparencyMode: procedure expose global.
  204.     if ~global.GfxLoad then return
  205.     tmode=""
  206.     call getattr("tmask","selected","m")
  207.     if m then tmode=tmode||" MASK"
  208.     call getattr("trgb","selected","m")
  209.     if m then tmode=tmode||" RGB"
  210.     call set(global.GfxName,"Transparency",tmode)
  211.     return
  212. /***********************************************************************/
  213. ChangeScaleMode: procedure expose global.
  214.     if ~global.GfxLoad then return
  215.     smode=""
  216.     call getattr("sup","selected","m")
  217.     if m then smode=smode||" SCALEUP"
  218.     call getattr("sdown","selected","m")
  219.     if m then smode=smode||" SCALEDOWN"
  220.     call getattr("sfree","selected","m")
  221.     if m then smode=smode||" SCALEFREE"
  222.     call DoMethod("gfxg","InitChanges")
  223.     call set(global.GfxName,"ScaleMode",smode)
  224.     call DoMethod("gfxg","ExitChanges")
  225.     return
  226. /***********************************************************************/
  227. SetNotifies: procedure expose global.
  228.     return
  229. /***********************************************************************/
  230. info: procedure expose global.
  231. parse arg msg
  232.     call set("info","contents",msg)
  233.     return
  234. /***********************************************************************/
  235. halt:
  236. break_c:
  237.     exit
  238. /**************************************************************************/
  239.